"""
    目标：
        frame表单切换
    需求：
        1. 打开注册实例.html
        2. 填写主页面页面信息
        3. 填写注册A页面信息
        4. 填写注册B页面信息
    方法：
        driver.switch_to_frame(frame_reference) --> 切换到指定frame的方法
            frame_reference:    可以为frame框架的name、id或者定位到的frame元素
        driver.switch_to.default_content()  --> 恢复默认页面方法
"""

# 导包
from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By

# 获取浏览器驱动对象
driver = webdriver.Chrome()

# 打开url
url = r"D:\python\python-selenium-learn\a05_HTML特殊元素处理\learn-files\注册实例.html"
driver.get(url)

# 最大化浏览器
driver.maximize_window()

sleep(2)

# 填写主页面页面信息
# 用户名
driver.find_element(By.CSS_SELECTOR, "#user").send_keys("admin")
# 密码
driver.find_element(By.CSS_SELECTOR, "#password").send_keys("admin")
# 电话
driver.find_element(By.CSS_SELECTOR, ".tel").send_keys("18611112222")
# 邮件
driver.find_element(By.CSS_SELECTOR, "#email").send_keys("123@qq.com")

# 切换到注册A    使用name
# driver.switch_to.frame("myframe1")
# 切换到注册A    使用id
driver.switch_to.frame("idframe1")

# 填写注册A页面信息
# 用户名
driver.find_element(By.CSS_SELECTOR, "#userA").send_keys("admin")
# 密码
driver.find_element(By.CSS_SELECTOR, "#passwordA").send_keys("admin")
# 电话
driver.find_element(By.CSS_SELECTOR, ".telA").send_keys("18611112222")
# 邮件
driver.find_element(By.CSS_SELECTOR, "#emailA").send_keys("123@qq.com")

# 恢复默认页面方法
driver.switch_to.default_content()
# 切换到注册B    使用name
# driver.switch_to.frame("myframe2")
# 切换到注册B    使用元素
driver.switch_to.frame(driver.find_element(By.CSS_SELECTOR, "body > s > iframe:nth-child(8)"))

# 填写注册B页面信息
# 用户名
driver.find_element(By.CSS_SELECTOR, "#userB").send_keys("admin")
# 密码
driver.find_element(By.CSS_SELECTOR, "#passwordB").send_keys("admin")
# 电话
driver.find_element(By.CSS_SELECTOR, ".telB").send_keys("18611112222")
# 邮件
driver.find_element(By.CSS_SELECTOR, "#emailB").send_keys("123@qq.com")

# 暂停2秒
sleep(2)
# 关闭驱动对象
driver.quit()